package org.hentor.modules.generate.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.hentor.modules.generate.dto.GenerateCodeDTO;
import org.hentor.modules.generate.dto.GenerateDevSaveDTO;
import org.hentor.modules.generate.dto.GenerateDevSelectDTO;
import org.hentor.modules.generate.vo.GenerateCodeVO;
import org.hentor.generate.entity.GenerateDevMain;

import java.sql.SQLException;

/**
 * <p>
 * 代码生成主表 服务类
 * </p>
 *
 * @author wzd
 * @since 2023-06-12
 */
public interface IGenerateDevMainService extends IService<GenerateDevMain> {

    /**
     * 保存配置信息
     * @param generateDevSaveDTO
     */
    void saveGenerateTable(GenerateDevSaveDTO generateDevSaveDTO);

    /**
     * 同步数据库
     * @param generateDevMain
     */
    void syncDataBase(GenerateDevMain generateDevMain) throws SQLException;

    /**
     * 查询明细
     * @param generateDevSelectDTO
     * @return
     */
    IPage<GenerateDevMain> selectGenerateTable(GenerateDevSelectDTO generateDevSelectDTO);

    /**
     * 修改配置信息
     * @param generateDevSaveDTO
     */
    void updateGenerateTable(GenerateDevSaveDTO generateDevSaveDTO);

    /**
     * 删除配置信息
     * @param generateDevMain
     */
    void deleteGenerateTable(GenerateDevMain generateDevMain);

    /**
     * 生成代码文件
     * @param generateCodeDTO
     */
    GenerateCodeVO codeFileGenerator(GenerateCodeDTO generateCodeDTO);
}
